package com.wing.user.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wing.user.model.response.AuthorityVO;
import com.wing.user.model.entity.Authority;
import com.wing.user.model.response.RoleAuthorityVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author
 */
@Mapper
public interface AuthorityDao extends BaseMapper<Authority> {

    /**
     * 通过用户id列表
     *
     * @param userId 用户id
     * @return {@link List<String>}
     */
    List<String> listByUserId(Long userId);

    /**
     * 通过角色id列表
     *
     * @param roleIds 角色id
     * @return {@link List<String>}
     */
    List<String> listByRoleId(@Param("roleIds") List<Long> roleIds);

    /**
     * 列表页面的url和按钮
     *
     * @param pageUrlList 页面的url
     * @param buttonList  按钮列表
     * @return {@link List<AuthorityVO>}
     */
    List<AuthorityVO> listByPageUrlAndButton(@Param("pageUrlList") List<String> pageUrlList, @Param("buttonList") List<String> buttonList);

    /**
     * 权限的角色列表
     *
     * @return {@link List<RoleAuthorityVO>}
     */
    List<RoleAuthorityVO> authorityRoleList();

}
